Computer networks, such as the Internet, are in wide-spread use today. These networks feature interconnected network devices, such as switches or routers, or computers, with some providing interfaces for users (persons) to communicate or interact or manage them. For instance, such interaction could be performed across a network by providing a network device with lines of textual commands, such as a sequence of alphanumeric characters, from either a keyboard or from a script. This method is commonly referred to as a command line interface (CLI) method. The “CLI” term is usually used in contrast to a graphical user interface (GUI) in which commands are typically issued by moving a pointer such as a mouse cursor and then pressing a key mounted on the mouse, commonly referred to as ‘clicking the mouse’. Remote CLI interactions are typically carried over a Telnet or a secure shell (SSH) protocol.
In a typical CLI scenario, a program residing in the computer system (local or remote) for which the CLI command is intended, directly or indirectly accepts and carries out the entered command line input. The result is a textual output signifying the initialization and running of some program, or some change in a system such as data deletion, modification or creation, etc.
The use of CLI, while effective for human interaction, is not without shortcomings from a network management standpoint. The most commonly used device management method is SNMP protocol, though there are other methods for managing or interacting with network devices. Some network devices, however, only expose the CLI interface in the form of Telnet and/or a SSH, and as such presents the data in a “decorated” form, where the data itself is intermixed with human-readable text. This form of data presentation, while useful for a human operator, complicates automated meaningful data collections. This results in the majority of CLI interaction code within network devices to become text parsing to extract the desired data values from the CLI, thus detracting from the original purpose of interacting between devices to collect device data, configure device with new data, or a combination thereof. The inclusion of text parsing in an application program also adds significant overhead in the time and expenses associated with the development of CLI-interaction application programs, as well as with their updating or upgrading at a future date.
Accordingly, there is a need for reducing the overhead associated with text-parsing within CLI-interaction application programs as well as the time and expenses in the development of CLI-interaction application programs.